package com.weijian.dal.dto.study;

import lombok.Data;

import java.time.LocalDateTime;

/**
 * 学习统计DTO
 * 用于返回用户学习情况的统计数据
 */
@Data
public class StudyStatisticsDTO {

    /**
     * 总课程数
     */
    private Integer totalCourses;

    /**
     * 已完成课程数
     */
    private Integer completedCourses;

    /**
     * 总学习时长（分钟）
     */
    private Long totalStudyDuration;

    /**
     * 最后学习时间
     */
    private LocalDateTime lastStudyTime;

    /**
     * 学习完成率
     */
    private String completionRate;

    /**
     * 格式化总学习时长（小时:分钟）
     */
    private String formattedTotalStudyDuration;

    /**
     * 学习完成率
     */
    public Double getCompletionRate() {
        if (totalCourses == null || totalCourses == 0) {
            return 0.0;
        }
        return (double) completedCourses / totalCourses * 100;
    }

    /**
     * 格式化总学习时长（小时:分钟）
     */
    public String getFormattedTotalStudyDuration() {
        if (totalStudyDuration == null || totalStudyDuration == 0) {
            return "0小时0分钟";
        }

        long hours = totalStudyDuration / 60;
        long minutes = totalStudyDuration % 60;

        if (hours > 0) {
            return hours + "小时" + minutes + "分钟";
        } else {
            return minutes + "分钟";
        }
    }
}